package leetcode.code0080;

public class Solution extends Solution80 {

	@Override
	public int removeDuplicates(int[] nums) {
		int len = nums.length;
		int ans = 0;
		int count = 0;
		int last = (int) 1e4 + 1;
		int num1 = (int) 1e4 + 1;
		// 0,0,0,1,2,2,4,4
		for (int i = 0; i < len; i++) {
			int cur = nums[i];
			if (cur != last) {// 不相等的时候向前移动两个数，移动到ans位置，位置都满足时候没有移动
				count++;
				nums[ans++] = cur;
				if (count == 2) {// 移动了两个
					if (cur == num1) {// 如果移动的这两个是一样的
						last = cur;
						count = 0;
					} else {// 如果移动的这两个是不一样的，第一个被移动的作为上一个数，当前可能重复的移动了1个
						last = num1;// 第一个被移动的作为上一个数，
						count = 1;// 当前可能重复的移动了1个
					}
				}
				num1 = cur;// count == 1移动的数，即：这一组不一样的第1个移动的数
			}
		}
		return ans;
	}

	public static void main(String[] args) {
		Solution so = new Solution();
		so.debug1();
		so.debug2();
		so.debug3();
		so.debug4();
		so.debug5();
	}

}
